<?php
class Upload{
	//文件格式
	public $ext_arr ;
	//保存路径
	public $save_path;
	public function start($inputName = 'Filedata'){
		if (empty($this->save_path)){
			$this->save_path = 'upload'.DIRECTORY_SEPARATOR;
		}
		$save_path =WEB_DIR.DIRECTORY_SEPARATOR.$this->save_path;
		if (empty($this->ext_arr)){
			$this->ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp','doc','docx');
		}
		//最大文件大小
		$max_size = 99999*99999;//(默认500K)
		//有上传文件时
		if (empty($_FILES) === false) {
			//原文件名
			$file_name = $_FILES[$inputName]['name'];
			//服务器上临时文件名
			$tmp_name = $_FILES[$inputName]['tmp_name'];
			//文件大小
			$file_size = $_FILES[$inputName]['size'];
			$msgbox = array(
					1=>	'返回错误: 请选择文件',
					2=> "返回错误: 上传目录不存在。($save_path)",
					3=> "返回错误: 上传目录没有写权限。($save_path)",
					4=> "返回错误: 临时文件可能不是上传文件。($file_name)",
					5=> "返回错误: 上传文件($file_name)大小超过限制。最大".($max_size/1024)."KB",
					6=> '上传文件扩展名是不允许的扩展名',
					7=> '上传失败'
			);
			//检查文件名
			if (!$file_name) {
				return 1;
			}
			//检查目录
			if (@is_dir($save_path) === false) {
				return 2;
			}
			//检查目录写权限
			if (@is_writable($save_path) === false) {
				return 3   ;
			}
			//检查文件大小
			if ($file_size > $max_size) {
				return 5;
			}
			$temp_arr = explode(".", $file_name);
			$file_ext = array_pop($temp_arr);
			$file_ext = trim($file_ext);
			$file_ext = strtolower($file_ext);
			if (in_array($file_ext, $this->ext_arr) === false) {
				return 6;
			}
			//创建文件夹
			$ymd = date("Ymd");
			$save_path .= $ymd .DIRECTORY_SEPARATOR;
			if (!file_exists($save_path)) {
				$file = ClassManager::getFile()->createFolder($save_path);
			}
			//新文件名
			$new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
			//移动文件
			$file_path = $save_path . $new_file_name;
			@chmod($file_path, 0644);//修改目录权限(Linux)
			move_uploaded_file($tmp_name, $file_path); //开始移动
			
			return array('path'=> $this->save_path.$ymd,'name'=>$new_file_name);
			
		}
	}
	
}